The subject matter disclosed herein relates to industrial control systems for controlling the position and/or velocity of electric motors in real time and in particular to an industrial controller allowing an external motion planner interface with the industrial controller to generate commands for motor drives connected to the industrial controller to control the position and/or velocity of the electric motors.
Industrial controllers are specialized computer systems used for the control of industrial processes or machinery, for example, in a factory environment. Generally, an industrial controller executes a stored control program that reads inputs from a variety of sensors associated with the controlled process or machine and, sensing the conditions of the process or machine and based on those inputs and a stored control program, calculates a set of outputs used to control actuators controlling the process or machine. Special control languages, such as “relay ladder logic” are normally used to facilitate programming of the device. Under the direction of the stored program, a processor of the industrial controller periodically examines the state of input devices and updates the state of output devices. In order to ensure predictable control of a machine or process, the control program must be highly reliable and deterministic, that is, executing at well-defined time periods.
Industrial controllers differ from conventional computers in a number of ways. Physically, they are constructed to be substantially more robust against shock and damage and to better resist external contaminants and extreme environmental conditions than conventional computers. The processors and operating systems are optimized for real-time control and are programmed with languages designed to permit rapid development of control programs tailored to a constantly varying set of machine control or process control applications.
Motor drives are utilized to control operation of a motor. According to one common configuration, a motor drive includes a DC bus having a DC voltage of suitable magnitude from which an AC voltage may be generated and provided to the motor. The DC voltage may be provided as an input to the motor drive or, alternately, the motor drive may include a rectifier section which converts an AC voltage input to the DC voltage present on the DC bus. The motor drive includes power electronic switching devices, such as insulated gate bipolar transistors (IGBTs), thyristors, or silicon-controlled rectifiers (SCRs). A controller in the motor drive generates switching signals to selectively turn on or off each switching device to generate a desired DC voltage on the DC bus or a desired motor voltage.
The motor drive receives a command signal which indicates the desired operation of the motor. The command signal may be a desired position, speed, or torque at which the motor is to operate. The motor is connected to the output terminals of the motor drive, and the controller generates the switching signals to rapidly switch the switching devices on and off at a predetermined switching frequency and, thereby, alternately connects or disconnects the DC bus to the output terminals and, in turn, to the stator of the motor. The position, speed, and torque of the motor are controlled by varying the amplitude and frequency of the AC voltage applied to the stator. By varying the duration during each switching period for which the output terminal of the motor drive is connected to the DC voltage, the magnitude and/or frequency of the output voltage is varied. The motor controller utilizes modulation techniques such as pulse width modulation (PWM) to control the switching and to synthesize waveforms having desired amplitudes and frequencies.
In certain applications, the command signal for the motor drive may be generated by the industrial controller, such as a programmable logic controller (PLC) or a programmable automation controller (PAC). As discussed above, the industrial controller is configured to execute a control program to control operation of an industrial machine or process. Within the control program, certain instructions may be configured to generate a command to the motor. Optionally, the industrial control may include a motion profile generator routine executing within the processor module or may further include a dedicated servo control module generating commands to the motor. Further, the industrial machine or process may include multiple motors and multiple motor drives to control the motors. The motion control instructions in the control program may generate commands to each motor and/or multiple servo control modules may be provided, where each servo control module corresponds to one of the motors. The industrial controller receives feedback signals from sensors on the controlled machine or process corresponding to the present operating state of the motors and of the controlled process and generates output signals with the control program to actuators and to the motor drives as a function of the feedback signals to achieve a desired operation of the controlled machine or process.
In other applications, a separate controller is provided to generate commands for each motor. In a robotic application, for example, the robot may include three axes, six axes, or various other numbers of axes that require synchronized control. The manufacturer of the robot provides a dedicated external controller to generate motion profiles for each axis based on desired movement of the robot and, in turn, converts the motion profile for each axis into a command for the motor, where the command may be a position reference, a velocity reference, a torque reference, or the like. The robot, however, must operate in coordination with the industrial machine or process controlled by the industrial controller. Knowledge of the actions of the robot, therefore, must be provided to the industrial controller.
Historically, the industrial controller would execute the control program until it encountered an instruction requiring action by the robot. The industrial controller would generate an output signal to the dedicated external controller indicating the required action. While the industrial controller may continue controlling other segments of the controlled machine or process, it must wait on a return signal from the dedicated controller indicating that the required action has been completed. The separate controllers limit integration of the robot with the controlled machine or process.
Thus, it would be desirable to provide an industrial controller that is able to integrate with an external controller for improved control of an industrial machine or process.
Additionally, a separate external controller responsible for controlling motion of certain axes in a controlled machine or process, inhibits integration with existing control features of the industrial controller. The industrial controller includes, for example, motion control routines for jogging an axis, for generating a cam profile for motion of one or more axes, or for linking motion of one axis to another axis either in a leader/follower configuration or with a gearing function. With the external controller generating commands for the motor drives, the industrial controller is restricted in utilizing its own motion control features with those axes.
Thus, it would be desirable to provide an improved system for integrating external motion control function with internal motion control functions on an industrial controller.